/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package org.apli.haiam.ejb.entidades;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author Informática
 */
@Entity
@Table(name = "far_egreso")
@NamedQueries({
    @NamedQuery(name = "FarEgreso.findAll", query = "SELECT f FROM FarEgreso f")})
public class FarEgreso implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "feg_id")
    private Integer fegId;
    @Basic(optional = false)
    @NotNull
    @Column(name = "feg_fecha_emision")
    @Temporal(TemporalType.DATE)
    private Date fegFechaEmision;
    @Basic(optional = false)
    @NotNull
    @Column(name = "feg_hora_emision")
    @Temporal(TemporalType.TIME)
    private Date fegHoraEmision;
    @Basic(optional = false)
    @NotNull
    @Column(name = "feg_estado")
    private int fegEstado;
    @Basic(optional = false)
    @NotNull
    @Column(name = "feg_id_usuario_envio")
    private int fegIdUsuarioEnvio;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 128)
    @Column(name = "feg_nombre_usuario_envio")
    private String fegNombreUsuarioEnvio;
    @Column(name = "feg_id_usuario_recepcion")
    private Integer fegIdUsuarioRecepcion;
    @Size(max = 128)
    @Column(name = "feg_nombre_usuario_recepcion")
    private String fegNombreUsuarioRecepcion;
    @Size(max = 2147483647)
    @Column(name = "feg_observacion")
    private String fegObservacion;
    @Column(name = "feg_fecha_recepcion")
    @Temporal(TemporalType.DATE)
    private Date fegFechaRecepcion;
    @Column(name = "feg_hora_recepcion")
    @Temporal(TemporalType.TIME)
    private Date fegHoraRecepcion;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Basic(optional = false)
    @NotNull
    @Column(name = "feg_total")
    private BigDecimal fegTotal;
    @Basic(optional = false)
    @NotNull
    @Column(name = "feg_id_bodega")
    private int fegIdBodega;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 128)
    @Column(name = "feg_nombre_bodega")
    private String fegNombreBodega;
    @OneToMany(mappedBy = "farEgreso", fetch = FetchType.LAZY)
    private List<FarEgresoDetalle> farEgresoDetalleList;
    @JoinColumn(name = "fse_id", referencedColumnName = "fse_id")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private FarServicio farServicio;

    public FarEgreso() {
    }

    public FarEgreso(Integer fegId) {
        this.fegId = fegId;
    }

    public FarEgreso(Integer fegId, Date fegFechaEmision, Date fegHoraEmision, int fegEstado, int fegIdUsuarioEnvio, String fegNombreUsuarioEnvio, BigDecimal fegTotal, int fegIdBodega, String fegNombreBodega) {
        this.fegId = fegId;
        this.fegFechaEmision = fegFechaEmision;
        this.fegHoraEmision = fegHoraEmision;
        this.fegEstado = fegEstado;
        this.fegIdUsuarioEnvio = fegIdUsuarioEnvio;
        this.fegNombreUsuarioEnvio = fegNombreUsuarioEnvio;
        this.fegTotal = fegTotal;
        this.fegIdBodega = fegIdBodega;
        this.fegNombreBodega = fegNombreBodega;
    }

    public Integer getFegId() {
        return fegId;
    }

    public void setFegId(Integer fegId) {
        this.fegId = fegId;
    }

    public Date getFegFechaEmision() {
        return fegFechaEmision;
    }

    public void setFegFechaEmision(Date fegFechaEmision) {
        this.fegFechaEmision = fegFechaEmision;
    }

    public Date getFegHoraEmision() {
        return fegHoraEmision;
    }

    public void setFegHoraEmision(Date fegHoraEmision) {
        this.fegHoraEmision = fegHoraEmision;
    }

    public int getFegEstado() {
        return fegEstado;
    }

    public void setFegEstado(int fegEstado) {
        this.fegEstado = fegEstado;
    }

    public int getFegIdUsuarioEnvio() {
        return fegIdUsuarioEnvio;
    }

    public void setFegIdUsuarioEnvio(int fegIdUsuarioEnvio) {
        this.fegIdUsuarioEnvio = fegIdUsuarioEnvio;
    }

    public String getFegNombreUsuarioEnvio() {
        return fegNombreUsuarioEnvio;
    }

    public void setFegNombreUsuarioEnvio(String fegNombreUsuarioEnvio) {
        this.fegNombreUsuarioEnvio = fegNombreUsuarioEnvio;
    }

    public Integer getFegIdUsuarioRecepcion() {
        return fegIdUsuarioRecepcion;
    }

    public void setFegIdUsuarioRecepcion(Integer fegIdUsuarioRecepcion) {
        this.fegIdUsuarioRecepcion = fegIdUsuarioRecepcion;
    }

    public String getFegNombreUsuarioRecepcion() {
        return fegNombreUsuarioRecepcion;
    }

    public void setFegNombreUsuarioRecepcion(String fegNombreUsuarioRecepcion) {
        this.fegNombreUsuarioRecepcion = fegNombreUsuarioRecepcion;
    }

    public String getFegObservacion() {
        return fegObservacion;
    }

    public void setFegObservacion(String fegObservacion) {
        this.fegObservacion = fegObservacion;
    }

    public Date getFegFechaRecepcion() {
        return fegFechaRecepcion;
    }

    public void setFegFechaRecepcion(Date fegFechaRecepcion) {
        this.fegFechaRecepcion = fegFechaRecepcion;
    }

    public Date getFegHoraRecepcion() {
        return fegHoraRecepcion;
    }

    public void setFegHoraRecepcion(Date fegHoraRecepcion) {
        this.fegHoraRecepcion = fegHoraRecepcion;
    }

    public BigDecimal getFegTotal() {
        return fegTotal;
    }

    public void setFegTotal(BigDecimal fegTotal) {
        this.fegTotal = fegTotal;
    }

    public int getFegIdBodega() {
        return fegIdBodega;
    }

    public void setFegIdBodega(int fegIdBodega) {
        this.fegIdBodega = fegIdBodega;
    }

    public String getFegNombreBodega() {
        return fegNombreBodega;
    }

    public void setFegNombreBodega(String fegNombreBodega) {
        this.fegNombreBodega = fegNombreBodega;
    }

    public List<FarEgresoDetalle> getFarEgresoDetalleList() {
        return farEgresoDetalleList;
    }

    public void setFarEgresoDetalleList(List<FarEgresoDetalle> farEgresoDetalleList) {
        this.farEgresoDetalleList = farEgresoDetalleList;
    }

    public FarServicio getFarServicio() {
        return farServicio;
    }

    public void setFarServicio(FarServicio farServicio) {
        this.farServicio = farServicio;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (fegId != null ? fegId.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof FarEgreso)) {
            return false;
        }
        FarEgreso other = (FarEgreso) object;
        if ((this.fegId == null && other.fegId != null) || (this.fegId != null && !this.fegId.equals(other.fegId))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.apli.haiam.ejb.entidades.FarEgreso[ fegId=" + fegId + " ]";
    }
    
}
